package com.wangyf.thread.c_001;

import org.openjdk.jol.info.ClassLayout;

/**
 * 验证synchronized的作用
 * 不加synchronized
 *      打印乱序:执行println方法的时候 cpu去执行另外的线程了
 *      打印重复:count--之后 cpu去执行另外的线程了
 * 加synchronized
 *      保证线程之间可见性、原子性
 * @author wangyf
 * @date 2021/1/1 17:54
 */
public class T implements Runnable {
    private int count = 100;

    @Override
    public /*synchronized*/ void run() {
        count--;
        System.out.println(Thread.currentThread().getName() + " : "+ count);
    }

    public static void main(String[] args) {
        T t = new T();
        for (int i = 0; i < 100; i++) {
            new Thread(t,"ThreadName"+i).start();
        }
    }
}
